1. Field of the Invention
The invention relates to a read/program control circuit for electrically programmable fuse elements that can be formed by standard CMOS processing. More specifically, the invention is used in a fuse circuit configured of, for example, electrical-fuse elements and anti-fuse elements.
2. Description of the Related Art
Conventionally, when non-volatilely storing data in a semiconductor integrated circuit, memory elements need to be disposed in the semiconductor integrated circuit.
For example, when the size of data to be stored is very large and large-size data needs to be rewritten, flash memory cells having a stacked-gate structure are used to store the data. Flash memory cells are formed by using dedicated special processing different from standard CMOS processing. As such, in the case of disposing flash memory cells in a semiconductor integrated circuit such as a logic LSI circuit formed by using standard CMOS processing, the cost overhead due to dedicated special processing need to be restrained by, for example, making the memory capacity to be of a mass-storage type.
In practice, however, in semiconductors integrated circuits such as system LSI circuits in which a plurality of functions are integrated, almost no necessities arise for non-volatilely storing large-size data. As such, it is sufficient for such a semiconductor integrated circuit to have memory elements each with a small capacity for non-volatilely storing a small-size of data, such as circuit-operation related trimming data, chip ID data, security code data, and redundancy data of a DRAM or SRAM, for example.
Such small-size data should be sufficient if it can be rewritten one time or several times at most, so that no needs arise for guaranteeing, for example, 100,000 rewrites as in the case of a flash memory cell.
For these reasons, for semiconductor integrated circuits like system LSIs of the above described type, it is rather important that a small-size data as mentioned above is stored in non-volatile memory cells formable by using standard CMOS processing instead of dedicated special processing and that cost reduction is implemented thereby.
As non-volatile memory cells formable by using standard CMOS processing, fuse elements are disclosed in, for example, Patent References 1 and 2 listed hereunder:
Patent Reference 1: Jpn. Pat. Appln. KOKAI Publication No. 2002-76126; and
Patent Reference 2: Jpn. Pat. Appln. KOKAI Publication No. 2002-368096.
Conventionally, well-known fuse elements include laser pre-arced type fuse elements formed such that a metal wire or polysilicon wire is cut by using a laser. In recent years, however, in response to demands for enabling programming even after packaging, using electrically programmable fuses (like electrical fuses and anti-fuses) is going to be a mainstream in lieu of using laser pre-arced type fuse elements of the type described above.
Electrically programmable fuse elements include those of a type in which programming is implemented by cutting a wire with overcurrent and a type in which programming is implemented through insulator breakdown caused by voltage stress. In the fuse element of the former type, the state is switched from the conductive state to the nonconductive state through pre-arcing of the wire. In the fuse element of the latter type, the state is switched from the nonconductive state to the conductive state through a insulator breakdown.
Fuse elements intermediate with respect to the former and latter types described above include those of the type that uses a wire formed of a salicide layer and a polysilicon layer to form fuse elements. In the fuse elements of this type, programming is executed through insulator breakdown of the salicide layer by overcurrent application (increase in the resistance value), and data is read out by using a ratio of resistances before and after breakdown of the salicide layer.
FIG. 1 depicts an example of a prior-art fuse circuit (portion corresponding to one fuse set).
The fuse circuit is configured to include a fuse set FS, a program data latch circuit PDL, and a read data (fuse data) latch circuit RDL. The fuse set FS is configured of one enable-bit fuse element and m data fuse elements. The program data latch circuit PDL latches data En, Din1, Din2, . . . , Dinm that are to be programmed into the m+l fuse elements. The read data latch circuit RDL latches data En, Dout1, Dout2, . . . Doutm that are to be read out from the m+1 fuse elements.
The enable-bit data En and the program data Din1, Din2, . . . , Dinm may either be generated in a chip in which the fuse circuit is formed or be supplied from the outside of the chip. Upon power ON, the enable-bit data En and the fuse data Dout1, Dout2, . . . , Doutm are latched by the read data latch circuit RDL and are then supplied into the circuits in the chip.
The enable-bit data En is used to determine validity/invalidity of data stored in the m electrically-fuse elements. For example, when the enable-bit data En is in a programmed state where, the for example, the data is “1” (=“H”), the data stored in the m electrically-fuse elements become valid. On the other hand, however, when the enable-bit data En is in an unprogrammed state where, for example, the data is “0” (=“L”), the data stored in the m electrically-fuse elements become invalid.
FIG. 2 is a detailed view of a portion of the example fuse circuit shown in FIG. 1.
For each fuse element FUSE, the illustrated example uses anti-fuse elements that execute programming through insulator breakdown.
Before programming, all the fuse elements FUSE in the fuse set FS are each maintained in the nonconductive state (initial state). The fuse elements FUSE are programmed corresponding to values of the program data Din1, Din2, . . . , Dinm.
In programming, the enable-bit data En in the to-be-programmed fuse set becomes “1” and is latched into a program data latch circuit PDL (En). At this event, an output of the program data latch circuit PDL (En) becomes “L,” which corresponds to the ground potential, for example. When a selection signal SEL becomes “H,” a transistor N2 turns ON, whereby a high voltage VPP is applied to both ends of the fuse element FUSE in a fuse set FS(En).
Consequently, data “1” is programmed into the fuse element FUSE. Specifically, the insulator forming the fuse element FUSE is broken, whereby the fuse element FUSE changes from the nonconductive state to the conductive state.
In programming, the program data Din1, Din2, . . . , Dinm each become “1” or “0.” For example, when the program data Din1 is “1,” the data “1” is programmed similarly to the case of the enable-bit data En. When the program data Din1 is “0,” the high voltage VPP is not applied to both ends of a fuse set FS(Din1). Accordingly, the insulator forming the fuse element FUSE is not broken, and “0” is programmed into the fuse element FUSE.
In a practical application, analog data stored in the fuse element FUSE needs to be converted into digital data to use the fuse data. As such, upon power ON, the fuse data are read out and latched into the read data (fuse data) latch circuits RDL.
In more specific, upon power ON, the reset signal RST is temporarily set to “H,” and the state of the latch circuit is reset; that is, the data En, Dout1, Dout2, . . . , Doutm are all set to “L.” Thereafter, the data in the fuse element FUSE is transferred to the read data latch circuit RDL.
For example, when the fuse element FUSE in the fuse set FS(En) is in a broken state (fuse data=“1”), “1” is latched into the read data latch circuit RDL, and the output data En thereof becomes “H.” When the fuse element FUSE in the fuse set FS(En) is in an unbroken state (fuse data=“0”), “0” is latched into the read data latch circuit RDL, and the output data En thereof becomes “L.”
During the power-on state, the read data latch circuit RDL keeps latching fuse data. The latched fuse data are output to, for example, to an internal circuit or the outside of the chip as output data Dout1, Dout2, . . . , Doutm via a data bus.
Thus, the electrically programmable fuse element exhibits an advantage in that fuse-programming can be implemented even after packaging. On the other hand, however, programming itself is performed according to physical variations of the material, in which once programming is performed, the state cannot be restored to the original pre-programming state.
Thus, in the prior-art fuse circuit, programming can be performed only once in unit of one fuse set; that is, fuse data cannot be rewritten into the same fuse set.
However, recent semiconductor integrated circuits have the demand for advanced features that allow rewrites of fuse data although the number of possible rewrites may be limited to be small.
One scheme contemplated to satisfy the demand is to mount flash memory cells on the circuit. However, this scheme cannot easily be employed as it offers the problem of requiring dedicated special processing, consequently leading to a cost increase. Another scheme contemplated is to provide the function of selecting a plurality of fuse sets by using external signals, thereby enabling fuse data to be rewritten. Nevertheless, however, the scheme causes an increase in the circuit size and complexity of the circuit configuration.